//引入express模块
const express = require('express');
//引入body-parser 
const bodyParser = require('body-parser');
//引入cookie-parser 
const cookieParser = require('cookie-parser');
//创建服务器对象
const app = express();

//解析 req.body
app.use(bodyParser.urlencoded({extended:true}));
//解析cookie-parser中的值
app.use(cookieParser());

let user = {};//全局变量，值一直存在  他是用来接收登录成功的值 登录成功时的用户名和密码  目的是用来实现1、判断注册、登录的值是否匹配；2、用来判断与cookie中储存的值是否一致；实现免登录或者重新登录
//register 注册
app.post('/register',(req,res)=>{
    console.log(req.body);
    user = req.body;
    res.send('注册成功！！！');
})
//login 登录
app.post('/login',(req,res)=>{
    console.log(req.body);
    if(req.body.name == user.name && req.body.password == user.password){
        res.cookie('user',req.body,{maxAge:1*60*1000});// 要实现免登录要用cookie储存用户名和密码；2、cookie中的user是储存值的属性名，与全局变量user不一样；3、设置了过期时间
        res.send('登录成功！');
    }else{
        res.send('用户名或密码错误！')
    }
})
//test 测试cookie
app.get('/test',(req,res)=>{
    console.log(req.cookies);//查看cookie中的值 要用到中间件 cookie-parser
    //判断req.cookies.user是否存在
    //判断req.cookies.name == user.name
    if(req.cookies.user){
        if(req.cookies.user.name == user.name && req.cookies.user.password == user.password){
            res.send('免密登录成功！');
        }else{
            res.send('请重新输入用户名和密码！')
        }
    }else{
        res.send('请重新输入用户名和密码！')
    }

})
//更改密码
app.post('/change',(req,res)=>{
    console.log(req.body);//查看更改后的密码
    user = req.body;
    res.send('密码更改成功！');
})

//启动服务器
app.listen(3030,(err)=>{
    if(!err){
        console.log('服务器启动成功！');
    }else{
        console.log(err);
    }
})


/*
    思路：
        注册页面  通过post请求收集  用户名和密码 放到全局变量user中 目的是为了与登录时的用户名、密码作比较；
        登录页面  通过post请求收集req.body 与user用户名、密码作比较 一致就登陆成功  不一致就用户名和密码错误；

*/